﻿using AppUpdateInstaller.Model;
using AppUpdateInstaller.Model.InstallationStages;
using ConsoleHoster.Common.Utilities;
using ConsoleHoster.Common.Utilities.IO;
using System;

namespace AppUpdateInstaller.UnitTests.ModelTests
{
	internal class MockInstallationStage : InstallationStageBase
	{
		public MockInstallationStage(IProcessManager argProcessManager, IFileSystemContentProvider argFileSystemContentProvider, Action argShutdownLogic)
			: base(argProcessManager, argFileSystemContentProvider, argShutdownLogic)
		{
		}

		public void CallNotifyProgressChange(InstallationStageProgressEventArgs argProgressEventArgs)
		{
			this.NotifyProgressChange(argProgressEventArgs);
		}

		public override void Run()
		{
			throw new NotImplementedException();
		}

		public IFileSystemContentProvider BaseFileSystemContentProvider
		{
			get
			{
				return base.FileSystemContentProvider;
			}
		}

		public IProcessManager BaseProcessManager
		{
			get
			{
				return base.ProcessManager;
			}
		}

		public Action BaseShutdownAction
		{
			get
			{
				return base.ShutdownAction;
			}
		}
	}
}
